Dear All:
身為船長的你只要把控這艘船的目的地是否正確,其餘雜事就交給其他夥伴來解決,就是Function and Methods。
想像你乘坐的這艘 Python 遊艇上有許多水手,他們是各種專業技能的高手,也就是 函數。這些水手有一個特點:你只要給他們明確的指令,他們就會獨立完成任務,無論是釣魚、調整船帆,還是做一頓美味的海鮮大餐。
每個水手只做他最擅長的事情,但他們不管你在航行中的具體情況。
他們會執行完任務後說:「搞定啦,老大,給你所需的結果!」
想像這艘Python遊艇本身擁有很多自帶功能的機器人——這些就是方法(Methods)。
他們跟船有很深的聯繫,知道如何操作這艘船的所有細節,因為他們屬於這艘船。
比如這艘遊艇有一個自動導航的機器人,專門負責調整航向,還有一個船身清潔的機器人專門打掃甲板。
這些方法(機器人)知道遊艇的狀態,比如速度、方向、清潔度等,並且根據這些信息進行操作。
# print() 最基礎的輸出,傳統肯定要來一個"Hello world!"
print("Hello, World!")
# type() 顯示資料的類型
print(type(42)) # int
print(type("Hello")) # str
# len() 獲取(如字串、列表)的長度
print(len("Hello")) # 5
print(len([1, 2, 3])) # 3
# int() 強制轉換成int類型
print(int("42")) # 42
# float() 將數值或字串轉換為浮點數。
print(float("3.14")) # 3.14
# str() 轉換為字串
print(str(123)) # "123"
# list() 轉換為列表
print(list("abc")) # ['a', 'b', 'c']
# set() 創建集合
print(set([1, 2, 2, 3])) # {1, 2, 3}
# sorted() 回傳排序後的列表
print(sorted([3, 1, 2])) # [1, 2, 3]
# sum() 所有元素的總和
print(sum([1, 2, 3])) # 6
# max() 取最大值
print(max([1, 2, 3, 8, 19, 22, 7])) # 22
# min() 取最小值
print(min([1, 2, 3])) # 1
# abs() 取絕對值
print(abs(-5)) # 5
#round(數值,取到小數第幾位) 四捨五入數值,取小數點第幾位
print(round(3.14159, 2)) # 3.14
在這邊順便解釋一下,何謂函數與標準函數庫:
寫程式最常聽到的一句話「造車不用自己造輪子」
讓我們繼續往下進行!
from collections import Counter
#"標準庫函數庫"都要: 說明 from 哪裡 improt 什麼
# 計算字母在字符串中的出現次數
letters = "banana"
letter_count = Counter(letters)
print(letter_count) # 輸出:Counter({'a': 3, 'n': 2, 'b': 1})
# 計算列表中數字出現次數
numbers = [1, 2, 2, 3, 3, 3, 4]
number_count = Counter(numbers)
print(number_count) # 輸出:Counter({3: 3, 2: 2, 1: 1, 4: 1})
常用場景:統計列表或字符串中元素的頻率。
from collections import defaultdict
# 默認值為 0 的字典
fruit_count = defaultdict(int)
fruit_count['apple'] += 1 # 自動初始化 'apple' 為 0
print(fruit_count) # 輸出:defaultdict(<class 'int'>, {'apple': 1})
常用場景:當你希望每次訪問不存在的鍵時,自動生成默認值(例如:計數)。
from collections import deque
# 創建一個雙端隊列
d = deque([1, 2, 3])
d.append(4) # 在右側添加
d.appendleft(0) # 在左側添加
print(d) # 輸出:deque([0, 1, 2, 3, 4])
d.pop() # 移除右側
d.popleft() # 移除左側
print(d) # 輸出:deque([1, 2, 3])
常用場景:當需要頻繁在序列兩端插入或刪除元素時,比 list 更有效率。
相信對於新手船長腦袋已經嗡嗡作響!不過還是要自己codeing會更了解!
~~今日先打完收工~~